package asoasd1212;

public class j15_OOP1 {

	//객체 지향 개발 기법
	//OOP: 객체를 기반으로 프로그램을 작성하는 방법
	//OOP 언어로 응용 프로그램을 개발하는 경우, 문제해결을 위해 실제 상황과 유사한 모델을 만들어야함
	
	//예를 들어 직원세금을 꼐산하는 프로그램을 만든다고 가정했을떄
	//프로그램에서 회사를 표현하는 회사객체가 필요
	//또한, 직원을 나타내는 직원객처,세금을 나타내는 세금객체도필요
	
	//회사,직원,세금 객체를 자바 프로그램에서 코드로 나타내는 방법에 대해 알아봄
	
	//모든객체에는 2가지 성질이있다.
	//속성(property),객체가 행동할수있는 (행동action)
	//현실세계에 존재하는 객체를 자바언어로 가져오는경우에도 속성과 행위는 있어야함
	//자바에서 속성은 field, 행위는 method라고함
	// 단, 필드와 메서드는 선택사항(선택사항)임
	
	//자바 객체를 만드는 방법은? -설계도를 이용
	//'차'라는 객체를 잘만들려면
	//좋은차로 만들어주는 [설계도]를 참고
	//OOP에서 객체를 만들어주는 설계도를 [클래스]라고함
	//클래스는 동일한 유형의 객체를 만드는 청사진/설계도 또는 템플릿임(☆★☆★☆)
	//붕어빵 -객체
	//붕어빵틀 - 클래스
	//밀가루, 팥-속성
	//클래스는 당신이 만들려는 객체의 종류를 결정함
	
	//요약하자면, 클래스는 프로그래머로 하여금 문제의 추상화를 만들 수 있게 해주는 OOP도구임
	//OOP에서 추상화adstraction는 실제 객체를 표현하기 위해 실제 객체에서 핵심적인 개념 또는 기능을 
	//뽑아 프로그래밍 객체로 만드는 행위를 말함
	
	//클래스는 자바 프로그램의 뼈대 
	//자바 초보자는 클래스를 작성할떄
	//클래스 이름, 필드, 메서드 등을 고려할것.
	
	//클래스 이름은 반드시 대문자로 시작
	//클래스 정의시 클래스 이름과 피일 이름은 동일해야함
	
	public static void main(String[] args) {
		
		//클래스 만들기
		//class 클래스이름{
		//        클래스 몸체(필드, 메서드)
		//}
		
		
	//클래스를 사용하지 않고 학생 객체 생성	
		String name="신소율";
		int stdno =69696969;
		String addr="내마음속";
		int mp =58825844;
		
		String name1="안소미";
		int stdno1 =04040404;
		String addr1="내마음밖";
		int mp1 =58826969;
		
    //학생 객체 생성
	student soyul=new student();
	soyul.name ="소율";
    soyul.stdno =69696969;
    soyul.addr="내마음속";
	soyul.mp =58825844;
	
	student somi=new student();
	somi.name="안소미";
	somi.stdno =04040404;
	somi.addr="내마음밖";
	somi.mp =58826969;
			
	}// main

}//class

//학생 클래스 정의

class student{
	//필드 선언
	String name;
	int stdno;
	String addr;
	int mp;
}

//고객(Customer) 클래스
//이름,주소, 전화번호, 이메일,ID,비번
class Customer{
	String id;
	String passwd;
	String name;
	String addr;
	String mp;
	String email;
	
}
//상품 (Product) 클래스
//상품명, 가격, 종류,제조사,상품번호
class Product{
	String item;
	int price;
	String jongru;
	String company;
	int itemnum;
}

//스타2 의 테란유닛 을 클래스로 정의
//생명력,에너지,방어력
//광물,베스핀,보급품,생산시간
class Star2{
	int HP;
	int MP;
	int def;
	int ston;
	int gas;
	int sply;
	int makingtime;
	
}